WPF如何将datagrid绑定到多张表并且允许编辑 |
您所在的位置:网站首页 › wpf datagrid 编辑 › WPF如何将datagrid绑定到多张表并且允许编辑 |
好久前在边学WPF边做开发的时候 就遇到了“怎么将datagrid 的数据源设置为多个表的集合”的问题,办法是有,像使用CollectionContainer等, 但是这些方法都会有一个相同的问题就是无法在datagrid里进行编辑。。 今天终于找到一个比较不错的方法了。。。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.Data; using ShoppingCard.Core; using System.Collections; namespace ShoppingCard.Views { /// /// Card_Management.xaml 的交互逻辑 /// public partial class CardManagement : UserControl { DataTable dt; public CardManagement() { InitializeComponent(); } // 这个类比较的重要。。。 public class CardJoin { public DataRow ShoppingCardRow { get; set; } public DataRow ShoppingCardInventoryRow { get; set; } public CardJoin(DataRow _ShoppingCardRow, DataRow _ShoppingCardInventoryRow) { ShoppingCardRow = _ShoppingCardRow; ShoppingCardInventoryRow = _ShoppingCardInventoryRow; } } public void init() { dt = DBOperation.GetDBDataSet("ShoppingCard").Tables[0]; //下面的查询就是把两个datatable的数据查询出来。。。 var Join = from a in dt.AsEnumerable() join b in DBOperation.GetDBDataSet("ShoppingCardInventory").Tables[0].AsEnumerable() on a.Field("CardName") equals b.Field("CardName") select new CardJoin(a, b); List list = new List(); foreach (var data in Join) list.Add(data); dgCardManagement.ItemsSource = list; } } } 前台代码(datagrid的绑定): 注意:Binding="{Binding Path=ShoppingCardInventoryRow[CardName] 注意文中红色字体。。。
CardName、CardDescription、Image是ShoppingCard表里的字段 CardName、Denomination是ShoppingCardInventor表里的字段 WPF如何将datagrid绑定到多张表并且允许编辑 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |